windows下使用pyinstaller将多个目录的Python文件打包成exe可执行文件

您所在的位置:网站首页 Pyinstaller 打包其他电脑运行不了 windows下使用pyinstaller将多个目录的Python文件打包成exe可执行文件

windows下使用pyinstaller将多个目录的Python文件打包成exe可执行文件

2023-03-18 21:24| 来源: 网络整理| 查看: 265

本文共 1803 字,大约阅读时间需要 6 分钟。

一、引言

需要将一个工程涉及两个目录的模块文件打包成exe,打包环境如下: 1、windows7; 2、Python 3.7.2; 3、PyInstaller 3.6 。

二、操作步骤 2.1、使用清华镜像下载并安装pyinstaller,

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

2.2、安装成功后进入DOS命令行

进入模块classA所在目录:F:\学习\python\project\classA 也可以在PyCharm的terminal方式下操作,但个人觉得反而不如DOS方式方便。

2.3、一个工程两个目录的情况

两个目录的模块文件非常简单,就是分别定义了classA和classB的构造方法和析构方法,在模块classA中使用了另一个目录下的模块classB。具体工程情况如下: 在这里插入图片描述 由于没有查到多目录打包相关的文档,尝试用多种方式执行打包命令:

pyinstaller classA.py classB.py -p F:\学习\python\project\classA;F:\学习\python\project\classB 报错:ValueError: script ‘F:\学习\python\project\classA\classB.py’ not found,可以看到classB.py目录找错了 pyinstaller classA.py classB.py -p F:\学习\python\project\classA; -p F:\学习\python\project\classB,报相同的错误 pyinstaller classA.py F:\学习\python\project\classB\classB.py 打包成功,打包文件在classA所在目录下的dist,即F:\学习\python\project\classA\dist\classA下,执行文件为classA.exe,拷贝F:\学习\python\project\classA\dist\classA整个目录到其他未安装Python的机器上能正常执行 pyinstaller classA.py -p F:\学习\python\project\classB 打包成功,但在代码中执行import classB.classB时报错:ModuleNotFoundError: No module named 'classB',但如在import classB.classB前加入如下代码: import syssys.path.append("F:\学习\python\project")

可以正常打包和执行。 5. pyinstaller classA.py -p F:\学习\python\project 打包成功,执行成功。

三、 结论

在执行两个目录的py文件打包时,只需要在其中一个目录下运行,打包时:

包含主程序的py文件必须是命令行中输入py文件列表的第一个文件(假设为xxx.py) 在没有其他参数设置的情况下,输出目录缺省在执行打包所在的目录的dist\xxx子目录下 与主程序相关的其他py模块文件,包括其他目录的py文件,可以在打包时有多种处理方式,但无论哪种方式,都是告知打包程序其他文件所在的路径 第一种方式就是在命令行第一个py文件后,将所有py文件都列出,但不在当前目录的文件要带文件路径; 第二种方式,所有主程序import的模块(或在import模块中再import的模块,依次类推),都无需将对应py文件在打包命令行中列出,打包程序会根据import关系自动打包,但必须确保相关文件所在目录必须在打包程序搜索路径上,这个路径可以是Python的使用的环境变量、可以是打包命令的-p或–paths参数指定路径(可以每个目录带一个-p或–paths 前导选项)、也可以是一个前导带多个目录,每个目录用分号分隔,也可以是py文件中sys.path.append的路径。 可能还有更多的其他方式,但有这几种足够使用了。但注意 如果对应py文件不能通过第二种import方式加载,则打包时只能采用第一种方式。

如果涉及多个目录,与两个目录的情况类似。

老猿Python,跟老猿学Python!

转载地址:https://blog.csdn.net/LaoYuanPython/article/details/105340688 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3